1. Technical Field
Example embodiments of the present invention relate to a file system, and more specifically to a method for providing a file system environment integrating multiple cloud storages by mapping multiple cloud storage services supporting open API to POSIX interfaces, and a file system using the method.
2. Related Art
Commercial could storage service vendors provide users with browsing tools for the users to use their cloud storage services, and the browsing tools may be classified into three types as follows.
A first type of the browsing tools is a web interface operating on web browser without installing a separate program in system of the users. A second type of the browsing tools is an application (app) which operates in mobile terminal of the users for accessing cloud storage. A third type of the browsing tools is a program for mount and synchronization which can provide the same interface as that of local storages such as a file explorer and the like.
Also, most of commercial cloud storage services may provide open application programming interfaces (Open API) for users or companies wanting to provide a third party service to develop applications using the commercial cloud storage services.
The open APIs usually perform communications with the cloud storages by using Representational State Transfer (REST) or Simple Object Access Protocol (SOAP) interfaces with Extensible Markup Language (XML) or Javascript Object Notation (JSON) format of data. Such the open API may basically provide a function of uploading files in the cloud storage, a function of downloading files stored in the cloud storages, a function of creating new folders, and a function of deleting files or folders in the cloud storages. Also, a function of retrieving meta data such as creation dates of the stored folders and files and sizes of them may be provided, and any other extended functions may be provided according to their services.
The mount and synchronization program which can be installed in a personal computer of the user may operate by mapping POSIX interfaces to open API of the cloud storage service. That is, when the user wants to copy specific files of local storage to cloud storage, system calls ‘open’, ‘read’, ‘write’, and ‘release’ of the POSIX interface may be converted to corresponding APIs of the cloud storage service, and the converted requests may be provided to a server of the cloud storage service.
However, when a plurality of cloud storage services are used, browsing programs dedicated for each cloud storage service should be developed and managed respectively. For example, when two cloud storage services (service A and service B) are supposed to be used and the user wants to copy or move a file stored in the service A to the service B, there has been an inconvenience that the user should download the specific file to local storage by executing a browsing program for the service A and upload the downloaded specific file to the service B by executing a browsing program for the service B.
That is, direct move or replication of data between difference cloud storages is impossible, and so the inconvenience that the user should manually perform downloading and uploading exists. In addition, the user should check spaces remaining in respective cloud storage and upload/download performance of the respective cloud storage before performing downloading and uploading. Also, when a synchronization function of the dedicated browsing program is executed, there may be a problem that the same size of space accommodating stored data in cloud storage is needed in a local storage.